package data;

import sharedData.IDataItem;

/**
 * Interface representing collection for holding IDataItem objects.
 * @author Didzis Petkus, Danny Johansen, Liviu Berheci 
 *
 */
public interface IDataQueue {

/**
 * Appends the specified item to the end of this list.
 * @param item - the item to add
 */
public void add(IDataItem item);

/**
 * Inserts the specified item at the beginning of this list.
 * @param item - the item to add
 */
public void addFirst(IDataItem item);

/**
 * REtrieves and removes the first item of this list,
 * or null if this list is empty.
 * @return first item of this list, or null if this list is empty
 */
public IDataItem poll();

/**
 * Retrieves, but does not removes the first item of this list,
 * or null if this list is empty.
 * @return first item of this list, or null if this list is empty
 */
public IDataItem peek();

/**
 * Returns the number of items in this list.
 * @return the number of items in this list
 */
public int getSize();
}
